package com.fivefu.core.camera.services;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fivefu.core.camera.entity.DbMonitorCamera;
import com.fivefu.core.camera.vo.request.DbMonitorCameraVo;
import com.fivefu.core.camera.vo.request.ProSourcePage;
import com.fivefu.core.camera.vo.response.DetailProbe;
import com.fivefu.core.camera.vo.response.ProPageList;
import com.fivefu.core.camera.vo.response.ProSourcePageList;

import java.util.List;
import java.util.Map;

public interface MonitorCameraService {

    /**
     * 同步探头
     */
    void synCameraInfo();

    /**
     * 同步探头在线状态
     */
    void synCameraOnlineStatus();

    /**
     *
     * 将 DbMonitorCamera数据集合转化为 ProPageList集合
     * @param list 探头集合
     */
    List<ProPageList> cameraListToPageList(List<DbMonitorCamera> list);

    /**
     *
     * 通过探头id查询该探头的标签
     * @param id 探头id
     * @return List<Map<String,String>>  key:labelName value:cameraCode
     */
    List<Map<String,String>> queryCameraLabelById(Long id);

    /**
     *
     * 分页查询探头源数据列表
     * @param proPage  数据源分页查询参数
     */
    Page<ProSourcePageList> getProbeSourcePageList(ProSourcePage proPage);

    /**
     *
     * 分页查询探头列表
     *
     * @param page  探头id集合 为标签管理部分服务
     * @param limit
     * @param cameraCode
     * @param cameraName
     * @param cameraType
     * @param cameraManufacturer
     * @param cameraAreaid
     * @param cameraStreetid
     * @param cameraStatus
     */
    Page<ProPageList> getProbePageList(Integer page,Integer limit,String cameraCode,String cameraName,String cameraType,String cameraManufacturer,String cameraAreaid, String cameraStreetid,String cameraStatus,String onlineStatus);

    /**
     *
     *编辑探头信息
     * @param cameraVo  探头信息
     * @param userid 操作用户编号
     */
    boolean editMonitorCamera(DbMonitorCameraVo cameraVo, String userid);
}
